import sys
input = sys.stdin.readline
import heapq
def readList():
return list(map(int, input().split()))
def readInt():
return int(input())
def readInts():
return map(int, input().split())
def readStr():
return input().strip()
def solve():
n, k = readInts()
a, b = readList(), readList()
a = sorted([(a[i], b[i]) for i in range(n) if b[i]-a[i] > 0], key=lambda x: -x[1])
n = len(a)
if n <= k:
return 0
h = []
ans = 0
v = sum([a[i][1] - a[i][0] for i in range(n) if i >= k])
for i in range(n):
if i < k:
heapq.heappush(h, -a[i][0])
v -= a[i][0]
else:
ans = max(ans, v)
v -= a[i][1]
heapq.heappush(h, -a[i][0])
ma = heapq.heappop(h)
v -= ma
return max(ans, v)
for _ in range(int(input())):
print(solve())
1671C - Dolce Vita | 1669G - Fall Down |
4D - Mysterious Present | 1316B - String Modification |
1204A - BowWow and the Timetable | 508B - Anton and currency you all know |
1672A - Log Chopping | 300A - Array |
48D - Permutations | 677C - Vanya and Label |
1583B - Omkar and Heavenly Tree | 1703C - Cypher |
1511C - Yet Another Card Deck | 1698A - XOR Mixup |
1702E - Split Into Two Sets | 1703B - ICPC Balloons |
1702F - Equate Multisets | 1700A - Optimal Path |
665C - Simple Strings | 1708A - Difference Operations |
1703E - Mirror Grid | 1042A - Benches |
1676B - Equal Candies | 1705B - Mark the Dust Sweeper |
1711A - Perfect Permutation | 1701B - Permutation |
1692A - Marathon | 1066A - Vova and Train |
169B - Replacing Digits | 171D - Broken checker |